From: Florian Müllner Date: Fri, 21 Sep 2012 14:58:03 +0000 (+0200) Subject: grabHelper: Ignore events from On-Screen-Keyboard X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~5730 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=2e6370945071d332d9e946cf5b4dbad993e4cdda;p=gnome-shell.git grabHelper: Ignore events from On-Screen-Keyboard GrabHelper automatically releases grabs when the user clicks outside the grabbed actors. However at least for the message-tray (which is the only user of grabHelper at the moment), we must ignore any events from the On-Screen-Keyboard, to prevent the tray from hiding at every key press. https://bugzilla.gnome.org/show_bug.cgi?id=683546 --- diff --git a/js/ui/grabHelper.js b/js/ui/grabHelper.js index fccc2fb4d..8b81b1994 100644 --- a/js/ui/grabHelper.js +++ b/js/ui/grabHelper.js @@ -318,6 +318,9 @@ const GrabHelper = new Lang.Class({ if (this._isWithinGrabbedActor(event.get_source())) return false; + if (Main.keyboard.shouldTakeEvent(event)) + return false; + if (button) { // If we have a press event, ignore the next event, // which should be a release event. diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js index 6a4d50833..09551dc9b 100644 --- a/js/ui/keyboard.js +++ b/js/ui/keyboard.js @@ -468,6 +468,12 @@ const Keyboard = new Lang.Class({ } }, + shouldTakeEvent: function(event) { + let actor = event.get_source(); + return Main.layoutManager.keyboardBox.contains(actor) || + actor._extended_keys || actor.extended_key; + }, + show: function () { this._redraw();